package com.efuture.reflect;

import java.lang.reflect.Constructor;

/**
 * @ClassNAME ReflectConstructor
 * @Description 通过反射调用构造方法
 * @Author zhaoshanshan
 * @Date 2021/9/11 10:06 下午
 * @Version 1.0
 */
public class ReflectConstructor {

    public static void main(String[] args) {
        try {
            //反射类
            Class c = Class.forName("com.efuture.reflect.ReflectConstructorTest");
            //第一种调用无参构造方法方式
            c.newInstance();
            //第二种调用无参构造方法方式
            Constructor con =  c.getDeclaredConstructor();
            con.newInstance();
            //调用有参构造放过
            Constructor con1 =  c.getDeclaredConstructor(String.class);
            con1.newInstance("我是测试数据");

        }catch (Exception e){
            e.getStackTrace();
        }
    }
}
class ReflectConstructorTest{
    String test;
    ReflectConstructorTest(){
        System.out.println("我是无参数构造");
    }
    ReflectConstructorTest(String test){
        this.test = test;
        System.out.println("我是有参构造方法");
        System.out.println(test);
    }
}